home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 2010 April
/
PCWorld0410.iso
/
hity wydania
/
Ubuntu 9.10 PL
/
karmelkowy-koliberek-desktop-9.10-i386-PL.iso
/
casper
/
filesystem.squashfs
/
usr
/
share
/
insserv
/
seq-changes
< prev
Wrap
Text File
|
2009-09-07
|
1KB
|
55 lines
#! /bin/bash
# Script from Frans Pop
set -e
if [ -z "$1" ]; then
echo "Usage: insserv-seq-changes /var/lib/insserv/<old bootscripts tarball>"
exit 1
fi
oldtar="$(tar tzf $1)"
for i in S $(seq 0 6); do
echo "Runlevel $i"
new="$(cd /etc/rc$i.d; ls -1 [KS]* | sort | nl)"
old="$(echo "$oldtar" | grep "^rc$i.d/[KS]" | cut -d/ -f2 | sort | nl)"
case $i in
S|0|6)
old="$(echo "$old" | sed -r "s/[KS][0-9]+//")"
new="$(echo "$new" | sed -r "s/[KS][0-9]+//")"
;;
*)
old="$(echo "$old" | sed -r "s/([KS])[0-9]+/\1_/")"
new="$(echo "$new" | sed -r "s/([KS])[0-9]+/\1_/")"
;;
esac
echo "$new" | while read num cmd; do
oldnum=$(echo "$old" | grep "[[:space:]]$cmd$" | awk '{print $1}')
if [ "$oldnum" ]; then
diff=$(($num - $oldnum))
else
oldnum="---"
diff=""
fi
if [ ${#cmd} -ge 16 ]; then
echo -e "$cmd\t$num\t$oldnum\t$diff"
elif [ ${#cmd} -ge 8 ]; then
echo -e "$cmd\t\t$num\t$oldnum\t$diff"
else
echo -e "$cmd\t\t\t$num\t$oldnum\t$diff"
fi
done
echo "$old" | while read num cmd; do
if ! echo "$new" | grep -q "[[:space:]]$cmd$"; then
if [ ${#cmd} -ge 16 ]; then
echo -e "$cmd\t---\t$oldnum"
elif [ ${#cmd} -ge 8 ]; then
echo -e "$cmd\t\t---\t$oldnum"
else
echo -e "$cmd\t\t\t---\t$oldnum"
fi
fi
done
echo
done